/**
 * @description wifi模式
 */
export const wifiModeDict = Object.freeze({
    WIFI24: '2.4',
    WIFI5: '5',
    WIFI6: '6'
});

/**
 * @description 常用前端定义错误码语义化
 * @param STRERR 特殊字符错误码
 * @param ACCIIERR ascii错误码
 * @param BYTEERR 字节大小错误码
 * @param EQUAL_IP_ADDRESS 与 lan ip 相等
 * @param EQUAL_BROAD_ADDRESS 广播地址相等错误码
 * @param EQUAL_NETWORK_ADDRESS 网络地址相等错误码
 * @param PARAMETERERR 参数错误错误码
 * @param IPERR ip地址错误码
 * @param NOT_IN_DHCP_RANGE 不在 DHCP Range 错误码
 */
export const errorCode = Object.freeze({
    STRERR: 'STRERR',
    ACCIIERR: 'ACCIIERR',
    BYTEERR: 'BYTEERR',
    EQUAL_BROAD_ADDRESS: 'EQUAL_BROAD_ADDRESS',
    EQUAL_LAN_IP_ADDRESS: 'EQUAL_LAN_IP_ADDRESS',
    EQUAL_NETWORK_ADDRESS: 'EQUAL_NETWORK_ADDRESS',
    PARAMETERERR: 'INCORRECT_PARAMETER_TYPE',
    IPERR: 'IP_FORMAT_ERROR',
    NOT_IN_DHCP_RANGE: 'NOT_IN_DHCP_RANGE'
});

/**
 * @description 接口返回错误码
 */
export const serverError = Object.freeze({
    ERR_VALID: 'ERR_VALID'
});

/**
 * @description 常用文件上传错误码
 * @param UPDATING_ING 更新中
 * @param FAIL 更新失败
 * @param SUCCESS 更新成功
 * @param ERROR 更新错误
 * @param FILE_ERROR 更新文件错误
 */
export const updateStatus = Object.freeze({
    UPDATING_ING: '5:UPDATING_ING',
    FAIL: '6:UPDATE_FAIL',
    SUCCESS: '7:UPDATE_SUCCEEDED',
    ERROR: '8:ERROR',
    FILE_ERROR: '9:FILE_ERROR'
});

/**
 * @description 根据后端描述，需要定义一个二维数组的，然后通过判断list是否在这个字典中，来调用不同的接口
 * @key 33 用于 macFilter-table
 */
export const IDSTACK_NODE = Object.freeze({
    LIST_CONN_DEV: 6,
    LIST_DEV_HOST_AC: 33
});

/**
 * @description 0 0 节点返回值字典
 * @param NO_SERVICE 无网络服务
 * @param DISCONNECTED 网络已断开
 * @param NEED_PIN 需要解锁PIN码
 * @param NEED_PUK 需要解锁PUK码
 * @param MODEM_INIT 模组初始化
 * @param SIM_INIT sim卡初始化
 * @param SIM_LOCKED 需要解锁
 * @param SIM_NOT_READY sim卡服务未准备(无Sim卡)
 * @param CONNECTED 网络已连接
 */
export const MAIN_STATUS_DICT = Object.freeze({
    NO_SERVICE: 'no_service',
    DISCONNECTED: 'disconnected',
    NEED_PIN: 'need_pin',
    NEED_PUK: 'need_puk',
    MODEM_INIT: 'modem_init',
    SIM_INIT: 'sim_init',
    SIM_LOCKED: 'sim_locked',
    SIM_NOT_READY: 'sim_not_ready',
    CONNECTED: 'connected'
});

/**
 * 0 26节点返回值，网络锁状态
 * 'SIM PIN', 'SIM PUK', 'PH-NET PIN', 'READY'
 */
export const NET_LOCK = Object.freeze({
    PIN: 'SIM PIN',
    PUK: 'SIM PUK',
    PH_NET_PIN: 'PH-NET PIN',
    READY: 'READY',
    ERROR: 'ERROR'
});

/**
 * @description 本地储存标识
 */
export const LOCAL_KEY = Object.freeze({
    /**
     * 是否根据 SIM 卡的 PLMN 号显示锁卡弹窗信息
     * @type {String}
     */
    IS_SHOW_SIM_TIPS: 'IS_SHOW_SIM_TIPS',

    /**
     * 根据 SIM 卡设置语言标识
     * @type {String}
     */
    IS_SET_LANG_BY_SIM: 'IS_SET_LANG_BY_SIM',

    /**
     * 是否根据 SIM 卡的 PLMN 号显示相关组件信息
     * @type {String}
     */
    IS_SHOW_INFO_BY_SIM: 'IS_SHOW_INFO_BY_SIM',

    /**
     * 当前设备尺寸，PC || Mobile
     * @type {String}
     */
    IS_CURRENT_MODE: 'IS_CURRENT_MODE',

    /**
     * 双频合一状态标识
     * @type {String}
     */
    IS_BANDSTEERING_STATUS: 'IS_BANDSTEERING_STATUS',

    /**
     * 最后操作的时间，用于判断是否需要更新在线时间
     * @type {String}
     */
    IS_LAST_OPERATION_TIME: 'IS_LAST_OPERATION_TIME',

    /**
     * 电话本数组（全）
     * @type {String}
     */
    IS_PHONEBOOK_DATA_ARRAY: 'IS_PHONEBOOK_DATA_ARRAY',

    /**
     * 电话本数据（单条）
     * @type {String}
     */
    IS_PHONEBOOK_DATA_INFO: 'IS_PHONEBOOK_DATA_INFO',

    /**
     * VPN 名称数据，用于名称查重
     * @type {String}
     */
    IS_OPEN_VPN_NAMES: 'IS_OPEN_VPN_NAMES',

    /**
     * 进入向导页标识
     * @type {String}
     */
    IS_NEED_WIZARD: 'IS_NEED_WIZARD',

    /**
     * 向导页基本配置数据
     * @type {String}
     */
    IS_WIZARD_BASE_SETTING: 'IS_WIZARD_BASE_SETTING',

    /**
     * 向导页城市信息
     * @type {String}
     */
    IS_CITY_LOCATION_INFORMATION: 'IS_CITY_LOCATION_INFORMATION',

    /**
     * 向导页路由历史
     * @type {String}
     */
    IS_WIZARD_HISTORY: 'IS_WIZARD_HISTORY',

    /**
     * 跳过向导页标识
     * @type {String}
     */
    IS_SKIP_WIZARD: 'IS_SKIP_WIZARD',

    /**
     * 登录用户信息 -> 用户名及密码
     * @type {String}
     */
    IS_LOGIN_DATA: 'IS_LOGIN_DATA',

    /**
     * 当前登录用户信息
     * @type {String}
     */
    IS_AUTH_TOKEN: 'IS_AUTH_TOKEN',

    /**
     * 当前登录用户分组
     * @type {String}
     */
    IS_CURRENT_USER_GROUP: 'URRENT_USER_GROUP',

    /**
     * 免密模式标识
     * @type {String}
     */
    IS_NO_PASSWORD: 'IS_NO_PARD',

    /**
     * 当前页面语言
     * @type {String}
     */
    IS_CURRENT_LANGUAGE: 'IS_CURRENGUAGE',

    /**
     * 当前页面支持的升级方式
     * @type {String}
     */
    IS_UP_TYPE: 'IS_TYPE',

    /**
     * 当前项目支持的WIFI类型
     * @type {String}
     */
    WIFI_TYPE: 'WIFIPE',

    /**
     * 当前是否达到流量限制
     * @type {String}
     */
    IS_TRAFFIC_LIMIT: 'IS_TRIC_LIMIT',

    /**
     * 当前是否 NAT-IPPT
     * @type {String}
     */
    IS_NAT_IPPT: 'IST_IPPT'
});

/**
 * @description 非MTK，网络制式类型
 * @param WCDMA 3G网络
 * @param LTE 4G网络
 * @param NSA 4G-5G网络
 * @param NR5G 5G网络
 */
export const SIGNAL_MODE = Object.freeze({
    WCDMA: 'WCDMA',
    LTE_TDD: 'G TDD',
    LTE_FDD: 'G FDD',
    NSA: 'L-NR',
    NR5G_FDD: 'G FDD',
    NR5G_TDD: 'G TDD'
});

/**
 * MTK 网络制式
 */
export const SERINGT_RAT = Object.freeze({
    LTE: 'QDIO_TECH_LTE',
    NSA: 'QADIO_TECH_NSA5G',
    NR5G: 'QRADIO_TECH_NR5G'
});

/**
 *  1 75 节点返回值，网络连接类型 NET_WAN_UPLINK_TYPE
 */
export const UPLINK_TYPE = Object.freeze({
    INVALID: '--',
    ETH: 'th',
    LTE: 'G',
    NR5G: 'G'
});

/**
 * eth工作模式，全双工、半双工
 */

export const WORK_MODE = Object.freeze({
    FULL: 'FLL',
    HALF: 'HLF'
});

/**
 * 连接状态
 */
export const LINK_STATUS = Object.freeze({
    UP: 'U',
    DOWN: 'DON'
});

/**
 * 限制模式：黑、白名单，不生效
 */

export const RESTRICT_MODE = Object.freeze({
    ALLOW: 'alow',
    DENY: 'dey',
    NONE: 'nne'
});
